Use case: USART RX in interrupt mode ¶
Sequence diagram ¶
Code snippet ¶
|
HAL1 |
HAL2 |
|---|---|
#define DATA_TO_RECEIVE_SIZE 256
uint8_t aRxBuffer[DATA_TO_RECEIVE_SIZE];
USART_HandleTypeDef husart;
/* Ensure that all required peripherals
(USART, GPIO, NVIC, etc.) are configured properly
/*
...
*/
/* USART register Receive complete user callback */
HAL_USART_RegisterCallback(&husart, HAL_USART_RX_CB_ID,
USART_RxCpltCallback);
/* Start a USART Process in interruption mode */
HAL_USART_Receive_IT(&husart, aRxBuffer,
DATA_TO_RECEIVE_SIZE)
|
#define DATA_TO_RECEIVE_SIZE 256
uint8_t aRxBuffer[DATA_TO_RECEIVE_SIZE];
hal_usart_handle_t husart;
/* Ensure that all required peripherals
(USART, GPIO,NVIC,etc.) are configured properly
/*
...
*/
/* USART register Receive complete user callback */
HAL_USART_RegisterRxCpltCallback(&husart, USART_RxCpltCallback);
/* Start a USART Process in interruption mode */
HAL_USART_Receive_IT(&husart, aRxBuffer,
DATA_TO_RECEIVE_SIZE)
|
Key changes ¶
HAL2 provides a dedicated registration API for RX completion callbacks:
HAL_USART_RegisterRxCpltCallback().HAL2 uses byte-oriented transfer count fields (for example
rx_xfer_count).

